﻿using System;

using System.Collections.Generic;

namespace SwyishChess.Domain.Piece
{
    /// <summary>
    /// Represent a chess piece
    /// </summary>
    public abstract class ChessPiece
    {
        /// <summary>
        /// Keep track of how many moves the chess piece has made
        /// </summary>
        public int MoveCount { get; set; }
        /// <summary>
        /// Number of possible moves available for the chess piece
        /// </summary>
        public int PossibleMoveCount { get; set; }
        /// <summary>
        /// The ID number of the owning player
        /// </summary>
        public int OwningPlayerId { get; set; }

        /// <summary>
        /// Default constructor which sets the possible move count to zero
        /// </summary>
        public ChessPiece()
        {
            MoveCount = 0;
            PossibleMoveCount = 0;
        }
        /// <summary>
        /// Must be overriden by subclasses possible moves by the extending concrete chess piece
        /// </summary>
        public abstract List<int[,]> AllPossibleMoves { get; }
    }
}
